Skip to content

Refactor unsizing coercion documentation #1731

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

WaffleLapkin
Copy link
Member

The old one was quite confusing and also incorrect in a few places. Follow-up to #1622.

@rustbot rustbot added the S-waiting-on-review Status: The marked PR is awaiting review from a maintainer label Feb 9, 2025
@WaffleLapkin WaffleLapkin force-pushed the unsize_coercion_rewrite branch 3 times, most recently from 6f8650a to 08bec64 Compare February 9, 2025 16:56
@rustbot

This comment has been minimized.

@ehuss
Copy link
Contributor

ehuss commented Mar 13, 2025

@rust-lang/types would you be able to review this?

@nikomatsakis
Copy link
Contributor

To add a bit more color, it'd be good to get a double check that the content is factually accurate before spec team takes it on for editorial review.

Comment on lines 270 to 273
<!-- FIXME: are there more requirements for `CoerceUnsized`? -->

r[coerce.unsize.coerce-unsized-impls]
Types which currently implement `CoerceUnsized<_>` (assuming `T: Unsize<U>`, `'a: 'b`, `A: CoerceUnsized<B>`, `Al: Allocator`):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally I would prefer to not duplicate the list of impls from the standard library here. I assume the user can click the link to CoerceUnsized to see which impls it has?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, mh. Yes, users can find them in the std docs (that's where I got the impls from!).

However, if we want the reference to be prescriptive, I think we should include this. While this is library code, it controls how a language feature behaves.

But I don't have a strong opinion here, if you think that this is not useful I can remove the list.

@WaffleLapkin WaffleLapkin force-pushed the unsize_coercion_rewrite branch from 08bec64 to 9271fdd Compare March 13, 2025 17:12
@ehuss
Copy link
Contributor

ehuss commented Apr 17, 2025

@WaffleLapkin To move this along, would it be possible to split this PR up a little so it doesn't get hung up? In particular, I think it would move things faster if we remove the name change (unsized -> unsizing) to avoid getting stuck on bikeshedding (that doesn't mean we can't make that change separately, it just adds friction). And remove the list of CoerceUnsized impls since I think we don't want to go down that road of trying to duplicate the standard library docs (I understand that there is a close relationship of language features with certain parts of the standard library, but other than recognizing a trait or type is special, we usually don't go into details on the library side, and instead defer to those docs).

You can either just make this PR smaller, or open a new smaller PR, whichever is more convenient.

Assigning TC since he asked.

@WaffleLapkin WaffleLapkin force-pushed the unsize_coercion_rewrite branch 2 times, most recently from b68840f to 56ee0bb Compare April 18, 2025 14:41
@jackh726
Copy link
Member

I can review this over the weekend

The old one was quite confusing and also incorrect in a few places.
@WaffleLapkin WaffleLapkin force-pushed the unsize_coercion_rewrite branch from 2a242c5 to 7780344 Compare April 18, 2025 14:51
@WaffleLapkin
Copy link
Member Author

@ehuss I forgot to comment, but I removed the impls and split off the rename.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: The marked PR is awaiting review from a maintainer
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants